public class User {
    private String account;  // 账号
    private String password; // 密码
    private String email;    // 邮箱（可选）

    // 构造对象（账号与密码必填，邮箱可以选填）
    public User(String account, String password, String email) {
        this.account = account;
        this.password = password;
        // 如果邮箱为空字符串，则设置为null，表示未提供邮箱
        this.email = (email != null && !email.isEmpty()) ? email : null;
    }

    // 重载构造方法，只接受账号和密码
    public User(String account, String password) {
        this(account, password, null); // 调用上面的构造方法，邮箱设置为null
    }

    // 获取账号
    public String getAccount() {
        return account;
    }

    // 获取密码（注意：在实际应用中，密码不应以明文形式提供getter方法）
    // 这里仅为了演示目的而提供，实际应用中应使用加密或其他安全措施
    public String getPassword() {
        return password;
    }

    // 获取邮箱
    public String getEmail() {
        return email;
    }

    // 用户信息展示
    public void displayInfo() {
        System.out.println("账号: " + account);
        // 注意：在实际应用中，密码不应以明文形式显示
        // 这里仅为了演示目的而显示，实际应用中应隐藏或替换为占位符
        System.out.println("密码: " + password + " (注意：此处为明文显示，实际应加密或隐藏)");
        if (email != null) {
            System.out.println("邮箱: " + email);
        } else {
            System.out.println("邮箱: 未提供");
        }
    }

    // 主方法，用于测试
    public static void main(String[] args) {
        // 创建User对象，一个填写邮箱，一个不填写邮箱
        User user1 = new User("user1_account", "user1_password", "user1@example.com");
        User user2 = new User("user2_account", "user2_password");

        // 展示用户信息
        System.out.println("用户1的信息:");
        user1.displayInfo();

        System.out.println("\n用户2的信息:");
        user2.displayInfo();
    }
}